package main

import (
	"context"
	"fmt"
)

// go语言中，都是从main函数开始。如果把main函数看作是主协程，那么从主协程衍生出的子协程和子子协程，就会构造出一个协程树。
// main函数所在的协程是整棵树的根
// context.Context()所有上下文对象都实现了Context接口
// context.emptyCtx 提供了上下文的空实现
func main() {
	//利用context.Background()可以创建根上下文。用户创建其他上下文数据。
	background := context.Background()
	value := context.WithValue(background, "key", "value")
	fmt.Println(value.Value("key"))
	//是为了方便后续修改设定的特殊标识符，不建议使用todo来获取上下文实例
	todo := context.TODO()
	fmt.Println(todo)
}
